JavaWeb:实现购物商城(课程设计完整版)

您所在的位置:网站首页 java web课程小结 JavaWeb:实现购物商城(课程设计完整版)

JavaWeb:实现购物商城(课程设计完整版)

2023-11-06 12:01| 来源: 网络整理| 查看: 265

前言

做一个javaweb可以对前后端基础知识进行巩固。 就比如 前端可以用 html+css+js+jQuery; 后端Http协议,Servlet基础,JSP技术,Mysql等 该程序做的这个就相对比较基础,适合大学生当课程设计用 在文章结尾附项目源代码和素材

一、功能概述 购物商城分为 管理员 和 普通用户 页面用户可以自行注册登录用户可以 加入商品到购物车中,可以查看商品的详情管理员可以对 商品进行增删改查,就比如发布商品,下架商品,修改商品,搜索商品。 二、代码分析

在这里插入图片描述

action层:管理业务调度和管理跳转的,即处理逻辑问题bean层:封装数据,设置数据的属性和行为biz层:接受数据库的处理结果并且返回给前端dao层:对数据库进行增删改查util层: 是一个多功能,基于工具的包。比如字符串处理,JDBC连接等 三、项目展示

因为艺术细胞太少,所以前端页面设计的比较难看,大家可以自行修改也可以在评论区提出意见,或联系我修改。

1.登录和注册

在这里插入图片描述 在这里插入图片描述

2.普通用户页面

在这里插入图片描述

3.商品详情页

在这里插入图片描述

4.购物车

在这里插入图片描述

5.管理员页面

在这里插入图片描述

6. 发布商品页面

在这里插入图片描述

7. 修改商品页面

在这里插入图片描述

8.商品数据库

在这里插入图片描述

四、部分代码展示 1.登录和注册 //1.判读用户请求的类型为login String method = req.getParameter("type"); switch (method) { case "login": // 从 login.html中 拿 账号,密码等数据 String name = req.getParameter("name"); String pwd = req.getParameter("pwd"); // 调用UserBiz的getUser方法,根据 网页中 输入的账号密码,获取相应对象 User user = userBiz.getUser(name,pwd); //判断 获取到的对象是否为 null; if (user == null) { System.out.println(user); out.println("alert('用户名或密码不存在');location.href = 'login.html';"); }else { session.setAttribute("user",user);//user-->Object out.println("alert('登录成功');location.href='/UserShow';"); } break; case "register" : // 从 login.html中 拿 账号,密码等数据 String name1 = req.getParameter("name"); String pwd1 = req.getParameter("pwd"); UserDao userDao = new UserDao(); try { userDao.setUser(name1,pwd1); } catch (SQLException throwables) { throwables.printStackTrace(); } out.println("alert('注册成功');location.href = 'login.html';"); break; 2.修改商品 req.setCharacterEncoding("utf-8"); resp.setContentType("text/html;charset=utf-8"); PrintWriter out = resp.getWriter(); CommodityDao commodityDao = new CommodityDao(); String temp = req.getParameter("mod"); int temp1 = 0; if (temp!=null) { temp1=Integer.parseInt(temp); } DiskFileItemFactory factory = new DiskFileItemFactory(); ServletFileUpload upload = new ServletFileUpload(factory); String imgPath=""; try { String name =""; String price = ""; String introduce = ""; String path=""; List list = upload.parseRequest(req); for (FileItem item : list) { if (item.isFormField()){ switch (item.getFieldName()){ case "mod" : temp1 = Integer.parseInt(item.getString("utf-8")); break; case "name" : name = item.getString("utf-8"); break; case "price" : price = item.getString("utf-8"); break; case "introduce" : introduce = item.getString("utf-8"); break; } }else { // 拿到文件的名称 String fileName = item.getName(); // 时间戳唯一 唯一的fileName fileName=fileName.substring(fileName.lastIndexOf(".")); fileName=System.currentTimeMillis()+fileName; imgPath="Mysql_imgs/"+fileName; // 拿到文件存储的路径 path = "D:\\IdeaProjects\\mydemo\\web\\Mysql_imgs\\"+fileName; // 创建读写流 InputStream in = item.getInputStream(); FileOutputStream outt = new FileOutputStream(path); // 完成读写操作 byte [] buffer = new byte[1024]; int len = 0 ; while ((len = in.read(buffer)) > 0) { outt.write(buffer); } // 关闭资源 in.close(); outt.close(); item.delete(); } System.out.println(temp1 +" "+name +" "+price +" "+introduce +" "+imgPath ); if (name!=""&&price!=""&&introduce!=""&&imgPath!="") { try { commodityDao.modCommodity(temp1,name,price,introduce,imgPath); } catch (SQLException throwables) { throwables.printStackTrace(); } out.println("alert('修改成功');location.href = 'index';"); } } } catch (FileUploadException e) { e.printStackTrace(); } 3. 发布商品 DiskFileItemFactory factory = new DiskFileItemFactory(); ServletFileUpload upload = new ServletFileUpload(factory); CommodityDao commodityDao = new CommodityDao(); String imgPath=""; try { String name =""; String price = ""; String introduce = ""; String path=""; List list = upload.parseRequest(req); for (FileItem item : list) { if (item.isFormField()){ switch (item.getFieldName()){ case "name" : name = item.getString("utf-8"); break; case "price" : price = item.getString("utf-8"); break; case "introduce" : introduce = item.getString("utf-8"); break; } }else { // 拿到文件的名称 String fileName = item.getName(); // 时间戳唯一 唯一的fileName fileName=fileName.substring(fileName.lastIndexOf(".")); fileName=System.currentTimeMillis()+fileName; imgPath="Mysql_imgs/"+fileName; // 拿到文件存储的路径 path = "D:\\IdeaProjects\\mydemo\\web\\Mysql_imgs\\"+fileName; // 创建读写流 InputStream in = item.getInputStream(); FileOutputStream outt = new FileOutputStream(path); // 完成读写操作 byte [] buffer = new byte[1024]; int len = 0 ; while ((len = in.read(buffer)) > 0) { outt.write(buffer); } // 关闭资源 in.close(); outt.close(); item.delete(); } if (name!=""&&price!=""&&introduce!=""&&imgPath!="") { // System.out.println(name+" ; "+price+" ; "+introduce+" ; "+imgPath); try { commodityDao.setCommodity(name,price,introduce,imgPath); } catch (SQLException throwables) { throwables.printStackTrace(); } out.println("alert('添加成功');location.href = 'index';"); } } } catch (FileUploadException e) { e.printStackTrace(); } 4. 购物车页面 首页 商品信息 数量 金额 操作 ${user.introduce} - ${user.amount} + ¥ ${user.price} 移除 合计: 0.00 结算 let gets = document.getElementsByClassName("con_div_s2"); let amounts = document.getElementsByClassName("con_div2_in1"); let sum = 0; for (let i = 0; i < gets.length; i++) { sum += parseInt(gets[i].innerHTML) * parseInt(amounts[i].innerHTML); } document.getElementsByClassName("con_end_em")[0].innerHTML = sum; 五、总结感想

这个项目,后端处理的还行,但是由于头脑简单,所以把前端页面设计的比较难看,大家多包涵,可以自行修改或者联系我修改。 如果在学习过程中有任何问题都可在评论区指出。

六、完整源代码和素材

链接:https://pan.baidu.com/s/13MG5R_xrLWQrxcf7sBtt7g?pwd=ojbk 提取码:ojbk



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3